package com.czy.learning.questionnature.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.czy.learning.questionnature.dto.QuestionNatureDTO;
import com.czy.learning.questionnature.mapper.QuestionNatureMapper;
import com.czy.learning.questionnature.service.QuestionNatureService;
import com.lin.learning.questionmanagement.dto.AddQuestionDto;
import com.lin.learning.questionmanagement.utils.BeanCopyUtils;
import com.our.learning.infrastructure.po.Question;
import com.our.learning.infrastructure.po.QuestionNature;
import com.our.learning.infrastructure.pojo.ResponseResult;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;
import java.util.Objects;

/**
 * @author :czy
 * @date : 2023/6/22 20:17
 */

public class QuestionNatureServiceImpl extends ServiceImpl<QuestionNatureMapper, QuestionNature> implements QuestionNatureService {

    @Autowired
    private  QuestionNatureMapper questionNatureMapper;

    @Override
    public QuestionNature getQuestionNatureByIdLocal(Integer id) {
        LambdaQueryWrapper<QuestionNature> lambdaQueryWrapper=new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(Objects.nonNull(id),QuestionNature::getId,id);
        QuestionNature questionNature=getOne(lambdaQueryWrapper);
        return questionNature;
    }

    @Override
    public List<QuestionNature> getQuestionNatureByIdsLocal(List ids) {
        List<QuestionNature> questionsNature = questionNatureMapper.selectBatchIds(ids);
        return questionsNature;
    }

    @Override
    public ResponseResult addQuestionNature(QuestionNatureDTO questionNatureDTO) {
        QuestionNature questionNature= BeanCopyUtils.copyBean(questionNatureDTO,QuestionNature.class);
        save(questionNature);
       // questionNatureMapper.insert(questionNature);
        return ResponseResult.okResult();
    }

    @Override
    public ResponseResult deleteQuestionNature(Integer id) {
        if (getById(id)==null){
            // TODO: 2023-06-20 提示没有这题
        }
        removeById(id);
        return ResponseResult.okResult();
    }

    @Override
    public ResponseResult updateQuestionNature(QuestionNatureDTO questionNatureDTO) {
        QuestionNature questionNature= BeanCopyUtils.copyBean(questionNatureDTO,QuestionNature.class);
        updateById(questionNature);
        return ResponseResult.okResult();
    }

    @Override
    public ResponseResult getQuestionNature(Integer id) {
        LambdaQueryWrapper<QuestionNature> lambdaQueryWrapper=new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(Objects.nonNull(id),QuestionNature::getId,id);
        QuestionNature questionNature=getOne(lambdaQueryWrapper);
        return ResponseResult.okResult(questionNature);
    }
}
